package com.yfq.springframework.beans;

import java.lang.reflect.Constructor;

/**
 * @author 姚凤桥
 * @date 2022/11/14 21:25
 * @description 对象实例化策略
 */
public interface InstantiationStrategy {
    /**
     * 实例化对象的方法
     *
     * @param beanDefinition ...
     * @param beanName       ...
     * @param constructor    实例化使用的构造函数
     * @param args           构造函数使用的参数
     * @return bean
     */
    Object instantiate(BeanDefinition beanDefinition, String beanName, Constructor<?> constructor, Object[] args);
}
